<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class home extends CI_Controller{
	function __construct(){
		parent::__construct();
		$this->headerdata = array();
		if (($this->session->userdata('userid')>0) && ($this->session->userdata('hash')==md5($this->session->userdata('userid').$this->session->userdata('username')))){
			$this->headerdata['userid'] = $this->session->userdata('userid');
			$this->headerdata['username'] = $this->session->userdata('username');
		}else{
			$this->headerdata['userid'] = 0;
			$this->headerdata['username'] = 'Guest';
		}
		
		$this->headerdata['route'] = 'localhost/source';
		$this->headerdata['routelink'] = '';
	}
	
	function index(){
		if ($this->headerdata['userid'] == 0) redirect(site_url('/login'));
		$this->headerdata['route2'] = 'Trang chủ';
		$data = array();
		$this->load->model('NewsModel');
		$q = $this->db->get('news');
		$data['news'] = $q->result();

		$this->load->model('UserModel');
		$type = $this->UserModel->gettype($this->session->userdata('userid'), $this->session->userdata('username'));
		$data['type'] = intval($type);
		$this->load->view('common/header',$this->headerdata);
		$this->load->view('common/left', $data);
		$this->load->view('index',$data);
		$this->load->view('common/footer');
	}
	
	function login(){
		if ($this->headerdata['userid'] > 0) redirect(site_url());
		
		$username = '';
		$error = '';
		$type = 3;
		if ($this->input->post('username')!= '' && $this->input->post('password')!= ''){
			$username = $this->input->post('username');
			$password = $this->input->post('password');
			
			if ($username == null || $password == null){
				$error = 'Vui lòng nhập đầy đủ tên truy cập và mật khẩu.';
			}else{
				$this->load->model('UserModel');
				$user = $this->UserModel->login($username,$password);

				if (!$user){
					$error = 'Tên truy cập hoặc mật khẩu không đúng.';
				}else{
					$q = $this->UserModel->gettype($user->id);
					$type = intval($q);
					$this->session->set_userdata('userid',$user->id);
					$this->session->set_userdata('username',$user->user);
					$this->session->set_userdata('hash',md5($user->id.$user->user));
					redirect(site_url());
				}
			}
		}

		if ($this->input->post('email')!= '' && $this->input->post('password_c')!= ''){
			$email = $this->input->post('email');
			$password_c = $this->input->post('password_c');

			if ($email == null || $password_c == null){
				$error = 'Vui lòng nhập đầy đủ email và mật khẩu.';
			}else{
				$this->load->model('CompanyModel');
				$user = $this->CompanyModel->login($email,$password_c);
				$type = 2;
				if (!$user){
					$error = 'Username and password do not match.';
				}else{
					//$type = $this->UserModel->gettype($user->id);
					$this->session->set_userdata('userid',$user->id);
					$this->session->set_userdata('username',$user->email);
					$this->session->set_userdata('hash',md5($user->id.$user->email));
					redirect(site_url());
				}
			}
		}
		
		$data = array();
		$data['error'] = $error;
		$data['username'] = $username; 
		$data['type'] = $type;
		$this->headerdata['route2'] = 'Login';
		
		$this->load->view('common/header',$this->headerdata);
		$this->load->view('common/left', $data);
		$this->load->view('login',$data);
		$this->load->view('common/footer');
	}
	
	function register(){
		if ($this->headerdata['userid'] > 0) redirect(site_url());
		$username = '';
		$error = '';
		$type = '';
		if ($this->input->post('username')!= '' && $this->input->post('type') != ''){
			$username = $this->input->post('username');
			$type = $this->input->post('type');

			$regStudent = '/[^0-9][A-Za-z][^0-9]'.'[_]'.'[0-9]'.'$/';
			$regTeacher = '/[A-Za-z]'.'$/';
			if($type=="Student") {
				if (preg_match($regStudent,$username)){
					$this->load->model('UserModel');
					$result = $this->UserModel->add($username);
					if ($result){
						$data = array();
						$data['username'] = $username; 
						$data['pass'] = $result;
						$data['type'] = $type;
						$this->headerdata['route2'] = 'Register succeed';
						
						$this->load->view('common/header',$this->headerdata);
						$this->load->view('common/left');
						$this->load->view('register_success',$data);
						$this->load->view('common/footer');
					}else{
						$error = 'Tên truy cập đã tồn tại!';
					}
				}else{
					$error = 'Tên truy cập không đúng. Hãy nhập đúng ctmail của sinh viên.';
				}
			}else if($type=="Teacher") {
				if (preg_match($regTeacher,$username)){
					$this->load->model('UserModel');
					$result = $this->UserModel->add($username);
					if ($result){
						$data = array();
						$data['username'] = $username; 
						$data['pass'] = $result;
						$data['type'] = $type;
						$this->headerdata['route2'] = 'Register succeed';
						
						$this->load->view('common/header',$this->headerdata);
						$this->load->view('common/left');
						$this->load->view('register_success',$data);
						$this->load->view('common/footer');
					}else{
						$error = 'Tên truy cập đã tồn tại!';
					}
				}else{
					$error = 'Tên truy cập không đúng. Hãy nhập đúng ctmail của giảng viên.';
				}
			}
		}
		if ($username == '' || $error != ''){
			$data = array();
			$data['username'] = $username;
			$data['error'] = $error;
			
			$this->headerdata['route2'] = 'Register';
			
			$this->load->view('common/header',$this->headerdata);
			$this->load->view('common/left');
			$this->load->view('register',$data);
			$this->load->view('common/footer');
		}
	}
	
	function logout(){
		//$this->delete_autologin();
  		//$this->ci->session->unset_userdata(array('username'=>'','userid'=>''));
  		$this->session->sess_destroy();

  		redirect(site_url('/login'));
	}
	
	function forgotpassword(){
		if ($this->headerdata['userid'] > 0) redirect(site_url());
		
		$username = '';
		$success = '';
		$error = '';
		
		if ($this->input->post('username')!= ''){
			$username = $this->input->post('username');
			
			$regUser = '/[A-Za-z]+_[0-9]{2}/';
			if (preg_match($regUser,$username)){
				$this->load->model('UserModel');
				$result = $this->UserModel->resetpass($username);
				if ($result){
					$success = 'Một email xác nhận đã được gửi tới '.$username.'@vnu.edu.vn. Làm ơn kiểm tra để nhận mật khẩu.';
				}else{
					$error = 'Tên truy cập đã tồn tại';
				}
			}else{
				$error = 'Tên truy cập không đúng. Hãy nhập chính xác VNU mail đã được cấp.';
			}
		}
		
		$data = array();
		$data['username'] = $username;
		$data['success'] = $success;
		$data['error'] = $error;
		
		$this->headerdata['route2'] = 'Register';
		
		$this->load->view('common/header',$this->headerdata);
		$this->load->view('common/left');
		$this->load->view('forgotpass',$data);
		$this->load->view('common/footer');
	}
	
	function changepass(){
		if ($this->headerdata['userid'] == 0) redirect(site_url());
		
		$success = '';
		$error = '';
		$data = array();
		$this->load->model('UserModel');
		$type = intval($this->UserModel->gettype($this->session->userdata('userid'), $this->session->userdata('username')));
		$data['type'] = $type;

		if ($this->input->post('oldpass')!= ''){
			$oldpass  = $this->input->post('oldpass');
			$newpass1 = $this->input->post('newpass1');
			$newpass2 = $this->input->post('newpass2');
			
			if ($newpass1 != $newpass2){
				$error = 'Mật khẩu mới không khớp.';
			}else if (strlen($newpass1) < 6){
				$error = 'Mật khẩu có tối thiểu 6 ký tự.';
			}else{
				if($type == 0 || $type == 1) {
					$this->load->model('UserModel');
					if ($this->UserModel->changepass($this->headerdata['userid'],$oldpass,$newpass1)){
						$success = 'Đổi mật khẩu thành công.';
					}else{
						$error = 'Mật khẩu hiện tại không đúng.';
					}
				}
				if($type == 2) {
					$this->load->model('CompanyModel');
					if ($this->CompanyModel->changepass($this->headerdata['userid'],$oldpass,$newpass1)){
						$success = 'Đổi mật khẩu thành công.';
					}else{
						$error = 'Mật khẩu hiện tại không đúng.';
					}
				}
			}
		}
		
		$data['success'] = $success;
		$data['error'] = $error;
		
		$this->headerdata['route2'] = 'Thông tin cá nhân';
		$this->headerdata['route2link'] = 'profile';
		$this->headerdata['route3'] = 'Đổi mật khẩu';
		
		$this->load->view('common/header',$this->headerdata);
		$this->load->view('common/left', $data);
		$this->load->view('changepass',$data);
		$this->load->view('common/footer');
	}
	
	function profile(){
        if ($this->headerdata['userid'] == 0) redirect(site_url());
       
        if (($this->session->userdata('msg') != '') && ($this->session->userdata('msgtype') != '')){
                $this->headerdata['msg'] = $this->session->userdata('msg');
                $this->headerdata['msgtype'] = $this->session->userdata('msgtype');
                $this->session->set_userdata('msg','');
                $this->session->set_userdata('msgtype','');
        }
       
        $success = '';
        $error = '';
       
        $data = array();
        $this->load->model('UserModel');
		$type = $this->UserModel->gettype($this->session->userdata('userid'), $this->session->userdata('username'));
		$data['type'] = intval($type);
        
        // $data['user'] = $this->UserModel->get($this->headerdata['userid']);
        // if (!$data['user']) redirect(site_url().'logout');
        
        if($type == 1) {
        	$data['user'] = $this->UserModel->get($this->headerdata['userid']);
	        if ($this->input->post('submit')){
	                $newdata = array();
	                $newdata = $this->input->post();
	               	//echo $newdata['dob'];
	                $freetime = '';
	                for ($i=0;$i<10;$i++){
	                        if (in_array($i,$newdata['freetime'])){
	                                $freetime.= '1';
	                        }else{
	                                $freetime.= '0';
	                        }
	                        $freetime.= '|';
	                }
	               
	                $newdata['freetime'] = substr($freetime,0,strlen($freetime)-1);
	               
	                if ($this->UserModel->edit($this->headerdata['userid'],$newdata)){
	                        $success = 'Cập nhập thông tin cá nhân thành công.';
	                        //$data['user'] = $this->UserModel->get($this->headerdata['userid']);
	                }else{
	                        $error = 'Không thể cập nhập. Hãy điền đầy đủ thông tin!';
	                }
	                $data['user'] = $this->UserModel->get($this->headerdata['userid']);
	        }
	       
	        if (!$data['user']->freetime){
	                $data['user']->freetime = '0|0|0|0|0|0|0|0|0|0';
	        }
	        $data['freetime'] = explode('|',$data['user']->freetime);
	        $data['success'] = $success;
        	$data['error'] = $error;

        	$this->headerdata['route2'] = 'User Profile';
        	$this->load->view('common/header',$this->headerdata);
        	$this->load->view('common/left', $data);
	        $this->load->view('profile',$data);
	        $this->load->view('common/footer');
        }

        if($type == 0) {
        	//$success = 'Cập nhập thông tin cá nhân thành công.';
        	$data['success'] = $success;
        	$data['error'] = $error;
        	$data['user'] = $this->UserModel->get($this->headerdata['userid']);

        	$this->headerdata['route2'] = 'User Profile';
        	$this->load->view('common/header',$this->headerdata);
        	$this->load->view('common/left', $data);
	        $this->load->view('profile',$data);
	        $this->load->view('common/footer');
        }
        
        if($type == 2) {
        	//$success = 'Cập nhập thông tin cá nhân thành công.';
        	$data['success'] = $success;
        	$data['error'] = $error;
        	$this->load->model('CompanyModel');
        	$data['user'] = $this->CompanyModel->get($this->headerdata['userid']);
        	$this->headerdata['route2'] = 'User Profile';
        	$this->load->view('common/header',$this->headerdata);
        	$this->load->view('common/left', $data);
	        $this->load->view('profile_company',$data);
	        $this->load->view('common/footer');
        }        
	}
}
?>